package cn.com.dcsgo.service;

import cn.com.dcsgo.model.user.User;
import cn.com.dcsgo.model.user.UserDelivery;
import cn.com.dcsgo.vo.user.LeaderAddressVo;
import cn.com.dcsgo.vo.user.UserLoginVo;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * UserService
 *
 * @author Dcsgo
 * @since 2025/4/24 10:58
 */

public interface UserService extends IService<User> {
    /**
     * 通过 openId 查询用户
     *
     * @param openId openId
     * @return User，不存在返回 null
     */
    User getByOpenId(String openId);

    /**
     * 查询默认自提点和团长信息
     *
     * @param userId userId
     * @return 自提点和团子信息
     */
    LeaderAddressVo getLeaderAndDeliveryInfo(Long userId);

    /**
     * 获取用户登录信息，用于存放到 redis 中
     *
     * @param userId userId
     * @return 用户登录信息
     */
    UserLoginVo getUserLoginVo(Long userId);

    /**
     * 根据 userId 查询默认的自提点信息
     *
     * @param userId userId
     * @return 自提点信息
     */
    UserDelivery getDefaultDeliveryByUserId(Long userId);
}
